package com.xiaoxu.intranetweb.mybatisplusSzappdb.service;

import com.xiaoxu.intranetweb.mybatisplusSzappdb.bo.*;
import com.xiaoxu.intranetweb.mybatisplusSzappdb.entity.CWeightSheets;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoxu.intranetweb.mybatisplusSzappdb.vo.*;
import com.xiaoxu.intranetweb.util.SzResult;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xiaoxu
 * @since 2022-12-27
 */
public interface ICWeightSheetsService extends IService<CWeightSheets> {
    List<CompanyWeightMoneyNumVo> companyWeightMoneyNum(CompanyWeightMoneyNumBo companyWeightMoneyNumBO);
    List<CompanyWeightMoneyNumVo> productWeightMoneyNum(CompanyWeightMoneyNumBo companyWeightMoneyNumBO);

    List<GetWeightByDayVo> getWeightByDay(GetWeightByDayVo getWeightByDayVo);
    List<StatisticWeightSheetsDayVo> statisticWeightSheetsDay(StatisticWeightSheetsDayBo params);
    /**服务于财务统计功能
    * 查询出thisPeriodDeliveryMoney：本期发货金额
    *  thisPeriodDelivery:本期发货量
     *  carNum: 车数
     * price: 单价
     * cpyCo: 收货单位
     * cpyChiCo: 收货子单位
     * cpySupplyCo: 供货单位
     * cpySupplyChiCo: 供货子单位
     * pdtName: 品种
 **/
    List<StatisticsVo> financialStatistics(StatisticsBo params);

    /**服务于财务统计功能
     * 查询出cpyCo: 收货单位
     * cpyChiCo: 收货子单位
     * cpySupplyCo: 供货单位
     * cpySupplyChiCo: 供货子单位
     * lastPeriodConsumption: 截至上期累计消费金额
     * @param params
     * @return
     */
    List<StatisticsVo> financialStatistics2(StatisticsBo params);

    /**服务于财务统计功能
     * 查询出cpyCo: 收货单位
     * cpyChiCo: 收货子单位
     * cpySupplyCo: 供货单位
     * cpySupplyChiCo: 供货子单位
     * thisPeriodConsumption: 截至本期累计消费金额
     * @param params
     * @return
     */
    List<StatisticsVo> financialStatistics3(StatisticsBo params);

    /**服务于财务统计功能
     * 查询出cpyCo: 收货单位
     * cpyChiCo: 收货子单位
     * cpySupplyCo: 供货单位
     * cpySupplyChiCo: 供货子单位
     * allConsumption: 不受时间管理的所有消费
     * @param params
     * @return
     */
    List<StatisticsVo> financialStatistics4(StatisticsBo params);



    List<CpyYearLogisticsVo> cpyYearLogistics(String token,String yearStart,String yearEnd);

    List<CompanyWeightMoneyNumVo> dailyStatistics(CompanyWeightMoneyNumBo companyWeightMoneyNumBO);
    List<CompanyWeightMoneyNumVo> dailyStatisticsByCpy(CompanyWeightMoneyNumBo companyWeightMoneyNumBO);
    List<CompanyWeightMoneyNumVo> productWeightMoneyNumByOne(CompanyWeightMoneyNumBo companyWeightMoneyNumBO);


//    List<GetCWeightSheetsVo> poundQueryForAdjustPrice(PoundQueryForAdjustPriceBo poundQueryForAdjustPriceBo);
    List<GetCWeightSheetsVo> poundQueryForAdjustPrice(PoundQueryForAdjustPriceBo poundQueryForAdjustPriceBo,String dataFrom);

    SzResult saleList(SaleStatisticsBo saleStatisticsBo);

    void saleReceipts(SaleStatisticsBo saleStatisticsBo, HttpServletResponse response);

    void saleReceiptsAll(SaleStatisticsBo saleStatisticsBo, HttpServletResponse response);

    void yearSaleExcel(YearSaleExcelBo yearSaleExcelBo, HttpServletResponse response) throws IOException, ParseException;

    SzResult yearSaleList(YearSaleExcelBo yearSaleExcelBo) throws ParseException;

    void solidWasteExcel(MultipartFile file, HttpServletResponse response);

    void solidWasteNowExcel(String startTime,String endTime,HttpServletResponse response);
//    List<InvoiceStatisticsVo> exportInvoiceStatistics(InvoiceStatisticsBo invoiceStatisticsBo);
    List<InvoiceStatisticsVo> exportInvoiceStatistics(InvoiceStatisticsBo invoiceStatisticsBo);
}
